In an integrated circuit data processing system, a bus is used to route instructions and data between various parts of the system. The bus generally includes a plurality of parallel, relatively long, metal lines, or conductors. Each of the metal lines of the bus may be subject to capacitive coupling from neighboring lines. For example, if a voltage on one of the metal lines is reduced from a logic high voltage to a logic low voltage, a logic high voltage on adjacent lines may also be reduced due to capacitive coupling between the lines. As the physical dimensions of a data bus are reduced (for example, due to additional shrinks), and the metal lines are spaced closer together, the capacitive coupling effect is increased.
A bus using a precharge/discharge scheme is especially vulnerable to capacitive coupling effects. In a precharge/discharge bus, the conductors are precharged to a logic high voltage, and weak holding latches are used to maintain the logic high voltage on the conductors. N-channel pull-down driver transistors are used to reduce the voltage on the conductors to a logic low voltage during assertion. The precharge/discharge scheme provides the advantage of high switching speeds for a high performance bus. However, a problem with using the weak holding latches is that they need to be weak enough to allow new data to overwrite old data. Data can be inadvertently overwritten by the capacitive coupling effect due to a non-active drive during a sampling phase of transmission.
Some commonly used busses have a bus structure that is continuously driven during the time the data is being sampled. A continuously driven bus has a driver circuit for changing the voltage level on a conductor, and for holding the conductor at the required logic state during sampling. A commonly used driver circuit has a totem-pole arrangement where the driver contains both P-channel and N-channel transistors. While the totem-pole driver circuit provides good noise immunity, the totem-pole driver adds additional loading to the conductors. This additional loading, compared to a precharge/discharge bus, reduces the switching speed of the continuously driven bus.
A solution to the capacitive coupling noise problem has been to shield each conductor of the bus. A shielded bus is effective for reducing coupling noise on a relatively long bus, but is less effective for shorter, or medium length busses. Also, the shielding requires a relatively large surface area on the integrated circuit to implement.